#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "GameModel.h"
#include <QObject>

#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>

#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QDebug>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    GameType temtype = AI;
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

        void initGame(); //初始化遊戲

    void typem()
    {
       temtype = MAN;
    }
    void typea()
    {
       temtype = AI;
    }
    void typen()
    {
       temtype = net;
    }
    void typew()
    {
      temtype = MAN ;
    }

    GameModel* game = NULL; //遊戲指針
private:
    Ui::MainWindow *ui;

    GameType game_type = AI;  //儲存遊戲類型
    int clickPosRow,clickPosCol; //存儲點擊的位置
    bool selectPos;  //是否移動到合適的位置，以選中摸個交叉點

    QString userID;
    QNetworkAccessManager * manager;
    QNetworkRequest request;

    void paintEvent(QPaintEvent* event);

    void mouseMoveEvent(QMouseEvent* event);
    void mouseReleaseEvent(QMouseEvent* event);
    void chessOneByPerson();
    void chessOneBynet();

private slots:
    void chessOneByAI();
    void on_pushButton_clicked();
    // 定时执行的update函数，用于拉取服务器端所有的操作记录
    void update();
};
#endif // MAINWINDOW_H
